//
//  LGSNodeTypeSelectorDelegate.h
//  LogicSim
//
//  Created by Jeremy Pereira on 30/04/2012.
//  Copyright (c) 2012 Jeremy Pereira. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "LGSSheetDelegate.h"

/*!
 *  @brief Delegate for selecting a pair of nodes from a list of nodes.
 *
 *  The delegate object must contain an list of nodes which may be selected.
 *  The delegate should preserve the ordering for as long as the connection 
 *  selector is in use.
 */
@protocol LGSConnectNodeSelectorDelegate <LGSSheetDelegate>
 
/*!
 *  @brief Inform the delegate that a node has been selected.
 *
 *  @param selector object that selected the node type.
 *  @param sourceIndex The index of the first node selected.  
 *  @param destIndex The index of the second node selected.
 *  @param outputName The name of the output connector on the source.
 *  @param inputName The name of the input connector on the destination.
 */
-(void) nodeSelector: (id) selector 
 selectedSourceIndex: (size_t) sourceIndex
           destIndex: (size_t) destIndex
selectedSourceOutput: (NSString*) outputName
  selectedDestOutput: (NSString*) inputName;

@end
